Recent years have seen the development and adoption of integrated operating environments, such as Microsoft Windows.sup.1 and New Wave.sup.2, for virtually all computer data processing systems wherein an integrated operating environment is comprised of operating system functions together with a plurality of other functions, such as user interface and data exchange and integration functions, which may be used in common by applications programs written to execute in the integrated operating environment. Such integrated operating environments usually provide a variety of means by which first data created by a first application program and residing in a first file or object belonging to the first application program may be integrated into second data created by a second application program and residing in a second file or object belonging to the second application program. FNT .sup.1 Microsoft and Windows are trademarks of Microsoft Corporation FNT .sup.2 New Wave is a trademark of Hewlett-Packard Corporation.
The integration of data between applications programs in integrated operating environments of the prior art customarily involves the embedding of a reference to the first data in the second data. The integrated operating environment is responsive to the invocation of the second application program or to an indication by a user of the second application program of an operation to be performed on the embedded first data to invoke either the first application program or a local handler designed to emulate at least some of the functions of the first application program and to provide the embedded reference to the first data to the first application or local handler. The first application or local handler will then open the first file or object, resolve the reference to first data, and provide a current copy of the first data from the first file or object to the second application through the integrated operating environment's data transfer mechanisms. The updated copy of the first data will then appear in the second data.
To illustrate by way of example, Microsoft Windows provides two mechanisms for embedding or linking data from a first data file into a second data file. The first uses the Windows Clipboard to perform a copy and paste operation and the second uses Object Linking and Embedding (OLE) and Dynamic Data Exchange (DDE) to link a copy of the data from the first data file into the second data file. Both methods require that either the first application program that generated the first data file or a local handler capable of performing the required functions of the first application program be invoked for each embedding and updating of data and differ primarily in that OLE provides automatic invocation of the first application program while the clipboard requires that the user invoke the first application program manually.
That is, when using the Clipboard the user must invoke the first application program and, using the first application program, either indicate the data to be copied or use the first application program to generate and then indicate the data to be copied. The user then uses the Copy function to copy the data to the Clipboard and then goes to the second application program, which was used to generate the second data file, and uses the paste operation to paste the data from the first data file into the second data file. This sequence of operations must then be repeated each time the copied data is to be updated.
OLE requires the same initial steps to initially embed the data from the first file into the second file but differs in that the data from the first file is "linked" into the second file through DDE by embedding a reference in the second file to the data from the first file. The OLE will then use the embedded reference and link to the first data file to copy the data from the first file to the second file through DDE so that the data appears to reside in the second file. Thereafter, the embedded data may be updated each time the second data file is opened by the second application program, either manually by using the manual update function or dynamically by using the automatic update function. OLE performs the updating operation, however, by using the embedded reference and the link to invoke the first application program, the first application program to make a new copy of the data, and DDE to provide the new copy from the first application program to the second application program.
It must be noted that both of these data integration methods of the integrated operating environments of the prior art permit only a copy of the data from the first file to be provided to the second file and that only the copy of the embedded data can be updated. That is, these methods are capable only of copying already existing data from the first file. This limitation, in turn, results in severe problems when the first application is of the type which operates upon original or raw data, referred to hereafter as source data, to generate new data, referred to hereafter as result data wherein the source data is dynamic, that is, may change with time. Examples of such first applications would include database inquiry programs, spreadsheet programs, financial programs, and so forth.
Because the data integration methods of the prior art permit only copies of either or both of the source data or the result data of the first application to be embedded in the data of the second application and to be updated, potentially severe problems may arise when the source data of the first application changes. That is, if the source data changes, for example, because of new additions to or changes to the source data in a database or to the input data to a spreadsheet or financial prediction or analysis program, the result data will not change until the first application program has been invoked and directed by the user to re-execute the operations which operated upon the source data to generate the result data. As a result, the result data will be out of synchronization with the source data, that is, will be in error with respect to the current source data and will not reflect the current source data, and this error will be carried over to the copy of the data embedded in the second data file, regardless of how often the embedded data is updated through the data integration means. In other instances, the first application, by design or user choice, may not save the result data from a given operation on the source data and, as a consequence, there will be no result data to be embedded into the second data.
The present invention provides a solution to these and other problems of the data integration methods of the integrated operating environments of the prior art.